블로그
카테고리 이동
[NLP 논문 리뷰 #1] 챗GPT에 이미지 처리를 첨가, Visual ChatGPT
2023. 4. 11. 12:00
최근 OpenAI 의 ChatGPT 가 워낙 난리다.
ChatGPT 가 만드는 대답의 진위여부를 떠나서, 일단 대화를 함에 있어서 완벽한 문장을 만든다는 점에서
우리가 상상하던 수준의 AI가 실제로 나타나버린 것이다.
그리고 3월 14일 OpenAI 에서 GPT4 까지 발표되었다.
GPT4 라는 친구는 자연어뿐만 아니라, 그림, 음성, 동영상까지 처리할 수 있는 능력을 갖추었다.
실제로 GPT4 를 사용해보니, 언어적, 시각적 의사소통에 있어서는 따라잡을 수가 없다라는 생각이 들 정도였다.
(GPT4 는 아직 API로는 나오지 않았고, ChatGPT 홈페이지에서 GPT4 로 설정하여 사용할 수 있다.)
그런데 GPT4 발표 며칠 전, Microsoft 에서 재밌는 논문을 하나 발표했다. 바로 ' Visual ChatGPT '이다.
ChatGPT 에 여러 Visual Foundation Model을 붙임으로 ChatGPT 에 이미지 생성, 수정 기능을 더한 것이다.
마침 친구의 제안으로 모 공모전을 참여하기 위해 ' Visual ChatGPT ' 논문을 읽을 수 있었고,
내용을 정리하는 차원에서 블로그에 기록을 남겨본다.
[Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models, Microsoft Research Asia][Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models
ChatGPT is attracting a cross-field interest as it provides a language interface with remarkable conversational competency and reasoning capabilities across many domains. However, since ChatGPT is trained with languages, it is currently not capable of processing or generating images from the visual...
arxiv.org
](https://arxiv.org/abs/2303.04671)
00: 핵심 아이디어
1. ChatGPT 에 여러가지 다른 VFM(Visual Foundation Model)을 더하여, 글과 이미지 모두 인식하고 생성, 수정할 수 있는 모델을 만든다.
2. ChatGPT 가 이미지를 인식하고, 처리하기 위한 VFM을 불러오고, 써먹을 수 있도록 ' 프롬프트 '를 구성한다.
01: Visual ChatGPT 모델 구성
Visual ChatGPT Overview (가운데에 있는 Prompt Manager가 핵심이다)
Visual ChatGPT 가 생~~각보다 시시하면서도 신기했던 것이
코딩이 아닌 각 모델의 프롬프트(Prompt) 를 통해 ChatGPT 와 VFM들을 연결한다는 것이었다.
즉, ChatGPT 와 VFM을 불러올 때, 특별한 프롬프트(Prompt) 를 추가하여 불러오는데
① 사용자 쿼리(글, 그림) 인식 및 입력 ② 불러올 VFMs 선택 및 적용 ③ 기존 대화 기록의 참고 ④ VFM 추가 적용여부 ⑤ VFM 적용 과정 中 이미지 파일의 인식 방법 ⑥ 출력 방법
이 여섯가지 부분들을 특수한 코딩이 아닌 이른바 '줄글' 형태로 프롬프트(Prompt) 로서 추가한 것이다.
그러니까 프롬프트 요놈은 Visual ChatGPT 가 어떻게 구동되어야 하는지 '가이드'를 해준다라고 봐도 될 것 같다.
최근 들어 프롬프트 엔지니어링(Prompt Engineering) 이라는 얘기도 나오던데
비전문가가 AI에 다가가기에 더욱 쉬워졌다라는 생각이 든다.
Visual ChatGPT가 불러오는 VFM
Visual ChatGPT 가 불러오는 VFM 은 위와 같다.
Public Open 되어 있는 왠만한 이미지 모델들은 다 불러오는 듯 하다. ㅎㅎ
덕분에 Colab 에서 돌리기 살짝 빡세다.
02: 프롬프트 매니저 (Prompt Manager)
Prompt Manager 가 어떤 역할을 하는지, 프롬프트 가 어떻게 입력되어 있는지 조금 더 깊게 파보자
1. System Principle: "Visual ChatGPT야. 너는 이렇게 구동되어야 해~"를 프롬프트 로 알려준다.
- Role of Visual ChatGPT: Visual ChatGPT 스스로가 어떤 역할을 하는지 인식시켜줘야 한다.
- VFM Accessibility: 어떤 VFM이 있는지 알려주고, 온전히 ChatGPT 가 어떤 VFM을 쓸 것인지 결정한다.
- Filename Sensitivity: 이미지 인식, 생성, 수정 시, 파일 이름 명명법을 알려주어 파일 인식을 할 수 있게 한다.
- Chain of Thought: 사용자의 쿼리에 대해 필요한 VFM을 연속적 사고 형식으로 구성, 적용할 수 있게 한다.
- Reasoning Format Strictness : 추론 형식에 대해 엄격하게 적용한다.
- Reliability: VFM의 결과물에 절대적으로 종속되어야 하며, 가짜 결과물을 만들지 않는다.
2. Foundation Model: 이미지 처리 과정에서 적절한 VFM을 선택하고 처리할 수 있도록 가이드를 준다.
- Name, Usage, inputs/Outputs, Example(예시를 주면 프롬프트가 더 잘 이해한다.)
3. User Querie: 사용자의 쿼리에 대해 어떻게 인식하고 입력하는지에 대해 규정한다.
- Generate Unique Filename: 고유한 파일 이름 생성
기존 파일과 새로운 파일을 어떻게 다르게 인식할 것인지 규정
- Force VFM Thinking : Visual ChatGPT 가 상상하지 않도록 하고 VFM 모델을 사용하도록 유도한다
그냥 줄글 응답이 아닌 VFM 모델을 통해 생성된 출력을 사용하도록 규정한다.
4. Foundation Model Output: VFM을 어떻게 거치고 어떻게 출력할 것인가를 규정한다.
- Generate Chained Filename : VFM 처리 과정에서 생성된 중간 이미지과 결과 이미지의 명명법 규정
- Call for More VFMs: 프롬프트 에 'Thought'를 추가하여 VFM이 필요한지 계속 자문하게 한다.
- Ask for More Details : 사용자 쿼리가 모호할 시, 사용자에게 자세한 정보를 요청한다.
생각보다 AI에게 가이드를 줘야할 것이 많구나...
하나도 모른다 생각하고 1부터 끝까지 다 가이드를 줘야 한다.
"이건 당연히"라고 생각하는 순간, 파일이 인식이 안되고, 생뚱맞은 이미지가 생성되어버리고, 소통이 안된다.
03: Visual ChatGPT 사용 방법
Visual ChatGPT 는 그럼 어떻게 사용할 수 있는가
1. Visual ChatGPT Github에서 'visual_chatgpt.py' Code를 긁어서 사용한다.[GitHub - microsoft/visual-chatgpt: Official repo for the paper: Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models
Official repo for the paper: Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models - GitHub - microsoft/visual-chatgpt: Official repo for the paper: Visual ChatGPT: Talking, Dr...
github.com
](https://github.com/microsoft/visual-chatgpt)
2. 그냥 Git Repo로 Code를 불러와서 사용한다. (다행히 Colab에서도 어느정도는 구동이 가능하다)[VisualChatGPT
Colaboratory notebook
colab.research.google.com
](https://colab.research.google.com/drive/1P3jJqKEWEaeNcZg8fODbbWeQ3gxOHk2-?usp=sharing)
다만 어떤 방법을 쓰던 간에 OpenAI API Key 가 필요하다. (즉, OpenAI 계정이 필요하다는 뜻)
OpenAI API Key 는 OpenAI 에 가입한 후 'View API Keys ' 메뉴에서 생성할 수 있다.
OpenAI Platform[OpenAI API
An API for accessing new AI models developed by OpenAI
platform.openai.com
](https://platform.openai.com/overview)
04: Visual ChatGPT 사용 결과
Visual ChatGPT Demo 영상
위는 Visual ChatGPT Demo 영상이다. 언제나 Demo 영상은 완벽하다.
하지만 Visual ChatGPT 에도 아쉬움은 존재했다. 그래서 모 공모전에서 쓰려다 결국 포기했었다.
1. 이미지에서 글자 인식, 수정, 생성이 안 된다.
이미지에서 외계어를 생성한다. 그리고 그 외계어를 없애지도 못한다. 왜냐면 인식이 안되니까.
2. 말도 안되는 이미지를 생성한다. 기타 줄이 몇 개야!!!
그래서 Visual ChatGPT 는 아직 발전이 필요한 모델이라고 할 수 있겠다.
아직까지는 현업이나 실제 상황에 활용할만한 수준은 되지 못하며, 그냥 개인적으로 갖고 놀만한 수준인 것 같다.
다만, Visual ChatGPT 가 나온지 며칠만에 GPT4 가 나와버렸다.Visual ChatGPT 사람들 무안하게시리...
GPT4 는 또 어떤 발전을 이뤘는지 볼 필요가 있을 듯 하다. API가 출시되면 가지고 놀아봐야겠다.